package kau.dao;

import java.util.ArrayList;
import java.util.List;

import kau.exception.DuplicationException;
import kau.exception.RecordNotFoundException;
import kau.vo.AttendInfo;

public interface AttendInfoDAOIF {
	public abstract void insert(AttendInfo attendanceInfo) throws DuplicationException;
	public abstract void update(AttendInfo attendanceInfo) throws RecordNotFoundException;
	public abstract void update_checkIn(AttendInfo attendanceInfo) throws RecordNotFoundException;
	public abstract void update_checkOut(AttendInfo attendanceInfo) throws RecordNotFoundException;
	
	
	public abstract void delete(String custId, int courseId, String day) throws RecordNotFoundException;
	

	//개인의 해당 코스 attendInfo정보를 가져온다
	public abstract ArrayList<AttendInfo> getAttendInfoList(String custId, int courseId);
	
	// 그룹의 해당 날짜의 attendInfo 정보 를 가져온다
	public abstract ArrayList<AttendInfo> getAllAttendInfoList(int courseId, String day);
	
	// 기간별 attendInfo정보를 가져온다.
	public abstract ArrayList<AttendInfo> getPeriodicalAttendInfoList(int courseId,String startDate,String endDate);
	
	// 특정달의 attendInfo정보를 가져온다.
	public abstract ArrayList<AttendInfo> getMonthAttendInfoList(int courseId,String month);
	
	// 모든기간의 attendInfo정보를 가져온다.
	public abstract ArrayList<AttendInfo> getAllPeriodAttendInfoList(int courseId);
	
	public abstract List getPeriodicalDay(int courseId,String startDate,String endDate);
	public abstract List getMonthList(int courseId, String startDate,
			String endDate);
	
	public abstract List getMonthCustId(int courseId,String month);
	public abstract List getAllCustId(int courseId);
	// 그룹+개인+날짜(String custId, int courseId, String Day)
	public abstract AttendInfo getAttendInfo(String custId, int courseId, String day) throws RecordNotFoundException;
	
	public abstract void periodDelete(String custId, int courseId, String startDay,String endDay) throws RecordNotFoundException;
	
	public abstract void lowPeriodDelete(String custId, int courseId, String day);
	
	public abstract void highPeriodDelete(String custId, int courseId, String day);
}
